﻿using AnesSystem.Models;
using AnesSystem.Services;
using Common;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AnesSystem.ViewModels
{

    public class AccountUpDateCtrlViewModel : BaseViewModel<AccountUpDateCtrlViewModel>
    {
        #region Variables

        private AccountModel account;
        private bool _isEnabled = false;
        private string _showPwd;

        #endregion

        #region Constructor
        public AccountUpDateCtrlViewModel()
        {
            Account = DataManager.Instance.Login;
        }
        public AccountUpDateCtrlViewModel(AccountModel account, bool ise)
        {
            Account = account;
            IsEnabled = ise;
        }

        public AccountModel Account
        {
            get
            {
                return account;
            }

            set
            {
                account = value;
                RaisePropertyChanged("Account");
            }
        }


        #endregion

        #region Properties

        //public PatientLinkModel Plm
        //{
        //    get
        //    {
        //        if (plm == null)
        //            plm = DataManager.Instance.CurrentPatientLink;
        //        return plm;
        //    }

        //    set
        //    {
        //        plm = value;
        //        RaisePropertyChanged("Plm");
        //    }
        //}

        //public ConfigOperationRoomModel Ssj
        //{
        //    get
        //    {
        //        return _ssj;
        //    }

        //    set
        //    {
        //        _ssj = value;
        //        RaisePropertyChanged("Ssj");
        //    }
        //}

        //public DateTime Jhsj
        //{
        //    get
        //    {
        //        return _jhsj;
        //    }

        //    set
        //    {
        //        _jhsj = value;
        //        RaisePropertyChanged("Jhsj");
        //    }
        //}

        //public string Taishu
        //{
        //    get
        //    {
        //        return _taishu;
        //    }

        //    set
        //    {
        //        _taishu = value;

        //        RaisePropertyChanged("Taishu");
        //    }
        //}

        //public string Zmys
        //{
        //    get
        //    {
        //        return _zmys;
        //    }

        //    set
        //    {
        //        _zmys = value;
        //        RaisePropertyChanged("Zmys");
        //    }
        //}

        //public string Fmys
        //{
        //    get
        //    {
        //        return _fmys;
        //    }

        //    set
        //    {
        //        _fmys = value;
        //        RaisePropertyChanged("Fmys");
        //    }
        //}

        //public string Mzfs
        //{
        //    get
        //    {
        //        return _mzfs;
        //    }

        //    set
        //    {
        //        _mzfs = value;
        //        RaisePropertyChanged("Mzfs");
        //    }
        //}

        //public string Jxhs
        //{
        //    get
        //    {
        //        return _jxhs;
        //    }

        //    set
        //    {
        //        _jxhs = value;
        //        RaisePropertyChanged("Jxhs");
        //    }
        //}

        //public string Xhhs
        //{
        //    get
        //    {
        //        return _xhhs;
        //    }

        //    set
        //    {
        //        _xhhs = value;
        //        RaisePropertyChanged("Xhhs");
        //    }
        //}

        //public string Bz
        //{
        //    get
        //    {
        //        return _bz;
        //    }

        //    set
        //    {
        //        _bz = value;
        //        RaisePropertyChanged("Bz");
        //    }
        //}

        public IEnumerable<ConfigOperationRoomModel> DisplayConfigOperationRoomModelList
        {
            get
            {
                ObservableCollection<ConfigOperationRoomModel> list = new ObservableCollection<ConfigOperationRoomModel>();
                list.Add(new ConfigOperationRoomModel());
                return list.Union(DataManager.Instance.ConfigOperationRoomModelList);
            }
        }

        public bool IsEnabled
        {
            get
            {
                return _isEnabled;
            }

            set
            {
                _isEnabled = value;
                RaisePropertyChanged("IsEnabled");
            }
        }

        public string ShowPwd
        {
            get
            {
 //               SetShowPwd();
                return _showPwd;
            }

            set
            {
                _showPwd = value;
            }
        }

        private void SetShowPwd()
        {
            if (Account == null)
            {
                ShowPwd = "";
            }
            else
            {
                if (string.IsNullOrEmpty(account.Pwd))
                {
                    ShowPwd = "";
                }
                else
                {
                    ShowPwd = "****";
                }
            }
        }

        #endregion

        #region 依赖属性

        #endregion

        #region Event

        #endregion

        #region Private Methods


        #endregion

        #region Public/Protected Methods
        public void Save()
        {
            if (ConfigAccountCtrlViewModel.Instance.IsAddorUpdate.Equals("ADD"))
            {
                Account.OfficeName = "麻醉科";
                Account.Status = "valid";
                Account.LoginName = Account.WorkID;
                string mma = ShowPwd.MD5Encrypt32();
                Account.Pwd = mma;
                AccountService.Instance.AddUpdate(Account);
                ConfigAccountCtrlViewModel.Instance.DisAccountList.Add(Account);
            }
            if (ConfigAccountCtrlViewModel.Instance.IsAddorUpdate.Equals("UPDATE"))
            {
                Account.OfficeName = "麻醉科";
                Account.Status = "valid";
                Account.LoginName = Account.WorkID;
                string mma = ShowPwd.MD5Encrypt32();
                Account.Pwd = mma;
                AccountService.Instance.AddUpdate(Account);
            }
            
        }



        #endregion

        #region EventHandlers

        #endregion
    }
}
